Controller logic and visualization code for automated processes is typically written with the specifications of the hardware utilized in the processes being known. For example, when writing controller logic, a developer typically starts with the knowledge of what type of controller or controllers will be used to control the associated process, what the specifications are for the I/O points in those controllers, and what hardware components are going to be controlled by those controllers. The developer then specifically writes the controller logic and/or visualization code for the corresponding processes based on those specifications. However, when modifications are made to the automation system (e.g., new controllers, valves, pumps, scan rate requirements), the developer then typically must go back and re-write large chunks of code for the process to accommodate the system modifications. Additionally, when new controllers are introduced to the automation system, to take advantage of those resources, the developer also has to re-write large portions of code.
It is with respect to this general technical environment that aspects of the present technology disclosed herein have been contemplated. Furthermore, although a general environment has been discussed, it should be understood that the examples described herein should not be limited to the general environment identified in the background.